The present invention relates generally to tools for improving the efficiency of software programs, such as word processing programs and spreadsheet programs, and more particularly, to a method and apparatus for cooperating with such software programs to perform supplemental searches over the Internet or another public network.
Commercially available software programs, such as word processing programs and spreadsheet programs, include a number of features and tools that increase user efficiency. As such software programs have become more sophisticated with each new release, manual tasks have generally become more automated and utilization of the software has become easier. For example, the Microsoft Word(trademark) word processing program from Microsoft Corporation of Redmond, Wash. includes an AutoCorrect feature that uses shortcuts to insert frequently used text and graphics and to automatically correct a number of frequent errors, such as the accidental usage of the xe2x80x9ccapitals lockxe2x80x9d key on the keyboard.
Similarly, the AutoFormat feature in Microsoft Word(trademark) works xe2x80x9cin the backgroundxe2x80x9d (i.e., substantially separate from other functions of the program and/or absent interaction with the user) to automate a number of formatting tasks, while the user focuses on the document content. Specifically, the AutoFormat feature analyzes each paragraph to determine how the paragraph is used in a document. For example, the AutoFormat feature may determine whether a given paragraph is used as a heading or as an item in a numbered list. Thereafter, the AutoFormat feature applies a style that is appropriate for the identified item. In addition, the AutoFormnat feature automatically formats Internet, network, and e-mail addresses as hyperlink addresses.
There is a vast amount of information available on the World Wide Web (the xe2x80x9cWebxe2x80x9d ) and other public networks. Anyone who is connected to the Internet and has a browser, such as Netscape Navigator Communicator(trademark), commercially available from Netscape Communications Corporation of Mountain View, Calif., can access information on the Web. Generally, to access desired information, a browser is used to access a web site with a known uniform resource locator (xe2x80x9cURLxe2x80x9d ) address directly, or to access a search engine, such as Yahoo!(trademark) or Alta Vista(trademark), that can identify other web sites containing relevant information. If the user accesses a search engine, the user enters keywords directing a search on a desired topic and the browser receives the search results from the search engine for presentation to the user. Generally, the search results comprise a set of hyperlinks pointing to web sites containing relevant information. While helpful information can often be found in this manner, the process can be quite slow.
Thus, a number of techniques have been proposed for improving the access time for Internet resources, from the user""s point of view. Pre-fetching strategies, for example, attempt to load documents into a client application before the user has actually selected any of these documents for browsing. When a user selects a hyperlink in a currently viewed document, or identifies a document using a uniform resource locator (xe2x80x9cURLxe2x80x9d) address, the addressed document may have already been pre-fetched and stored (e.g., cached) on or near the user""s machine, thus reducing the document access time observed by the user.
In addition, multitasking allows a user to run several programs simultaneously, which can each be viewed and managed by the user through a single graphical user interface (GUI). For example, a user can initiate an Internet search using a browser and then return to operating a word processing program in another window. Although both programs are open on the desktop simultaneously, and the user can switch between applications, the user only actively uses one program at a time. Specifically, the one program that is currently affected by user commands and data entry is deemed to be in the xe2x80x9cforeground,xe2x80x9d while any other programs are in the background.
There is currently little, if any, integration between browsers and other commercially available software programs, such as word processing programs. Thus, if a user of a word processing program desires to obtain information from the Web for use in a document the user is creating, the user must divert his or her attention from the primary task of creating the document to manually initiate a search. Generally, the user must (i) suspend working in the word processing environment, (ii) ensure an active connection to the Internet, (iii) manually initiate the browser application and enter the search terms for the desired topic, and (iv) await the search results. After the search results are obtained and processed, the user must regain his or her train of thought and resume the primary task of creating the document. Thus, a need exists for a word processor that facilitates the supplemental searching performed by a user.
In addition, the spelling and grammar check features of conventional word processing programs have not been fully integrated with browsers and other Internet tools. Thus, the spelling and grammar check features suffer from a number of limitations, which, if overcome, could greatly increase the utility and efficiency of such features. Specifically, the spelling and grammar check features compare a document against a predefined database to identify improper usage. Since new words and phrases are continuously adopted and acceptable grammar usage will change over time, the predefined databases used by the spelling and grammar check features become quickly outdated. While conventional word processing programs often include a mechanism to allow users to update the spelling and grammar databases to reflect such changes, there is a need for spelling and grammar check tools that utilize a dynamic database that inherently reflects such changes in common usage.
Generally, a method and apparatus are disclosed for cooperating with a software program, such as a word processing program or a spreadsheet program, to perform a supplemental search over the Internet or another public network. According to one aspect of the invention, a supplemental search is performed in the background over the Internet or another public network, to obtain desired information while the user continues the primary task of creating a document. In one implementation, an illustrative word processing application program spawns a background thread (corresponding to a process running in the background) in a multithreaded environment to perform the supplemental search using a browser while the word processing application program maintains continuous control until the search results are obtained and viewed by the user.
In one embodiment, a supplemental search can be performed on a given topic when requested by a user. Generally, the user selects a desired data element (e.g., one or more words) in a document and initiates a supplemental search of the data element, for example, by clicking on a toolbar icon, selecting a search command option from a menu or performing a predefined series of keystrokes. The supplemental search is launched in the background and the user continues working in the word processing application program until the search results are received. Thus, the user does not have to divert his or her attention from the primary task of creating the document to manually initiate a search.
In addition, a supplemental search can be performed automatically if a predefined condition is detected in a document of an application program. For example, a supplemental search can be performed to evaluate the usage of an apparently improper data element that fails to satisfy the requirements of a spelling or grammar database associated with the word processing application program. A supplemental search of an apparently improper data element can be launched automatically if the apparently improper data element appears more than a threshold number of times in a document. The supplemental usage search is launched in the background, transparent to the user, and the user continues working in the word processing application program until the search results are received. Thus, the present invention can be configured to perform Internet-based spelling or grammar checking.
Once the search results are received, the present invention determines if the apparently improper data element has been used more than a threshold number of times on remote servers accessed through the public network, such as the Internet. In this manner, the present invention automatically detects the adoption of new words or phrases and changes in acceptable grammar usage. If the apparently improper data element has been used more than a threshold number of times, the user can be queried to update the document to reflect the new usage. In addition, the static spelling or grammar databases associated with the word processing application program can optionally be dynamically updated to reflect such new words or phrases and changes in grammar usage as the content available on a public network changes and grows.
According to another aspect of the invention, the word processing application program automatically determines if a document being created corresponds to one or more predefined categories. If a document being created corresponds to a predefined category, the document can optionally be provided to an expert associated with said identified category for review. The results of the expert review are then provided to the user. The user can be required to guarantee payment for the expert review, for example, using a credit card or a prepaid account, or to otherwise prepay for the expert review. A particular expert can be identified, for example, by accessing a database indicating one or more experts for each predefined category, or by one or more designated experts, such as individuals having predefined qualifications.
A more complete understanding of the present invention, as well as further features and advantages of the present invention, will be obtained by reference to the following detailed description and drawings.